﻿/*
 Program analogiczny do	WR-Z-12		(03-IV-113)

 Program perforuje napisy w tzw. kodzie wizualnym:
 znaki kodu dalekopisowego nr 2 wprowadzane z dalekopisu
 tłumaczy na układy rządków na taśmie wychodzącej z perforatora 5-kanałowego tak,
 iż układ dziurek przypomina kształtem litery, cyfry i znaki przestankowe
 o stałej wysokości 8 kwintetów, w układzie pionowym.
 Program pracuje na drugiej ścieżce ferrytowej i należy go startować od adresu 17400.
 Po zatrzymaniu się wystarczy wcisnąć [StartCPU] dla ponownego uruchomienia.
 Może być wywołany jako podprogram od adresu 17401 z adresem napisu w A w skali 21,
 kończącego się znakiem LF. Znak CR daje całkowicie zadziurkowane pole.
 Jeśli nie przełączono, to pierwszy znak jest z pocztu cyfr.

 Program jest zgodny z alfabetem dalekopisu TTY MKD-2 PL2.
*/


	BLOK	0c17400		;Adres początku programu
;-------------------------------
PROGR	B6 = czTTY	..prog1	;funkcja czytania z dalekopisu
;-------
PODPR	STOP	0	..podp2	;Ślad - powrót do progr. głównego
poczt	DS	0k21		;Poczet: 0=cyfry, 32=litery
podp2	[temp6] = B6		;arch B6
	[temp5] = B5		;arch B5
	[temp4] = B4		;arch B4
	B6 = czTXT		;funkcja czytania z napisu w pamięci
	B5 = A			;adres napisu
	B4 = 0			;liczba znaków w A
	SKS	funkc
	B4 = [temp4]		;odtw B4
	B5 = [temp5]		;odtw B5
	B6 = [temp6]	..PODPR	;odtw B6 i Return
;-------
prog1	A = [kodFS]		;kod FS
	WY	6		;wyprowadzenie kodu FS
	SKS	funkc
	STOP	0	..PROGR	;stop i nawrót
;-------------------------------

funkc	STOP	0	..funk2	;Ślad - powrót do PROGR/PODPR
gdyLS	[poczt] = 0	..nZnak	;znaki z pocztu liter
funk2	[temp7] = B7
	[temp3] = B3
gdyFS	B3 = 32			;znaki z pocztu cyfr
	[poczt] = B3
nZnak	0		..B6	;Skocz do czTTY/czTXT; A = znak...
jZnak	A  = A >>> 17		;A = znak w skali 21
kodFS	A  = A & 31		;:670 00037   +   00
	SKZ	nZnak		;gdy NU, pominąć	
	A - 0b11011
	SKZ	gdyFS		;gdy FS, przełączyć na cyfry	
	A - 0b11111
	SKZ	gdyLS		;gdy LS, przełączyć na litery
	A - 0b00010
	SKZ	gdyLF		;gdy LF, koniec tekstu
	B3 = A + [poczt]
	A  = [wzory+B3]
	B3 = 7			;licznik rządków
nRząd	WY	5
	A  = A <<< 5
	SKLC B3-- nRząd	..nZnak
gdyLF	B3 = [temp3]
	B7 = [temp7]	..funkc	;powrót po śladzie
;-------
czTTY	WE	1		;A = znak z dalekopisu
	A  = A <<< 34	..jZnak	;i do jZnak
;-------
czTXT	SKNLC B4--,slowo	;czy są jeszcze znaki w B7
	A  = B7			;są
	A  = A <<< 5	..schow	;i do schowka
slowo	A  = [B5]		;słowo ze znakami tekstu
	SKLC B5++,++		;wskaźnik na nast. słowo
	B4 = 6			;licznik znaków w słowie
schow	B7 = A		..jZnak	;i do jZnak
;-------
temp3	DS	0		;B3 - roboczy
temp4	DS	0		;B4 - licznik znaków w słowie
temp5	DS	0		;B5 = adres kolejnego słowa tekstu
temp6	DS	0		;B6 = funkcja pobierania znaku
temp7	DS	0		;B7 - przechowalnia słowa ze znakami

;-------------------------------

wzory	EQU	*
	DS     (0b_00000 )k04+( /*
*/		0b_01110 )k09+( /*
*/		0b_11111 )k14+( /*
*/		0b_11111 )k19+( /*
*/		0b_11111 )k24+( /*
*/		0b_01110 )k29+( /*
*/		0b_00000 )k34	;wzór NU

	DS     (0b_11111 )k04+( /*
*/		0b_10000 )k09+( /*
*/		0b_10000 )k14+( /*
*/		0b_11110 )k19+( /*
*/		0b_10000 )k24+( /*
*/		0b_10000 )k29+( /*
*/		0b_11111 )k34	;wzór E

	DS     (0b_00000 )k04+( /*
*/		0b_11111 )k09+( /*
*/		0b_00000 )k14+( /*
*/		0b_11111 )k19+( /*
*/		0b_00000 )k24+( /*
*/		0b_11111 )k29+( /*
*/		0b_00000 )k34	;wzór LF

	DS     (0b_01110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_11111 )k19+( /*
*/		0b_10001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_10001 )k34	;wzór A

	DS     (0b_00000 )k04+( /*
*/		0b_00000 )k09+( /*
*/		0b_00000 )k14+( /*
*/		0b_00000 )k19+( /*
*/		0b_00000 )k24+( /*
*/		0b_00000 )k29+( /*
*/		0b_00000 )k34	;wzór SP

	DS     (0b_01110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10000 )k14+( /*
*/		0b_01110 )k19+( /*
*/		0b_00001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_01110 )k34	;wzór S

	DS     (0b_01110 )k04+( /*
*/		0b_00100 )k09+( /*
*/		0b_00100 )k14+( /*
*/		0b_00100 )k19+( /*
*/		0b_00100 )k24+( /*
*/		0b_00100 )k29+( /*
*/		0b_01110 )k34	;wzór I

	DS     (0b_10001 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_10001 )k19+( /*
*/		0b_10001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_01110 )k34	;wzór U

	DS     (0b_11111 )k04+( /*
*/		0b_11111 )k09+( /*
*/		0b_11111 )k14+( /*
*/		0b_11111 )k19+( /*
*/		0b_11111 )k24+( /*
*/		0b_11111 )k29+( /*
*/		0b_11111 )k34	;wzór CR

	DS     (0b_11110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_10001 )k19+( /*
*/		0b_10001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_11110 )k34	;wzór D

	DS     (0b_11110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_11110 )k19+( /*
*/		0b_10100 )k24+( /*
*/		0b_10010 )k29+( /*
*/		0b_10001 )k34	;wzór R

	DS     (0b_01111 )k04+( /*
*/		0b_00001 )k09+( /*
*/		0b_00001 )k14+( /*
*/		0b_00001 )k19+( /*
*/		0b_00001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_01110 )k34	;wzór J

	DS     (0b_10001 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_11001 )k14+( /*
*/		0b_10101 )k19+( /*
*/		0b_10011 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_10001 )k34	;wzór N

	DS     (0b_11111 )k04+( /*
*/		0b_10000 )k09+( /*
*/		0b_10000 )k14+( /*
*/		0b_11110 )k19+( /*
*/		0b_10000 )k24+( /*
*/		0b_10000 )k29+( /*
*/		0b_10000 )k34	;wzór F

	DS     (0b_01110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10000 )k14+( /*
*/		0b_10000 )k19+( /*
*/		0b_10000 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_01110 )k34	;wzór C

	DS     (0b_10001 )k04+( /*
*/		0b_10010 )k09+( /*
*/		0b_10100 )k14+( /*
*/		0b_11000 )k19+( /*
*/		0b_10100 )k24+( /*
*/		0b_10010 )k29+( /*
*/		0b_10001 )k34	;wzór K

	DS     (0b_11111 )k04+( /*
*/		0b_00100 )k09+( /*
*/		0b_00100 )k14+( /*
*/		0b_00100 )k19+( /*
*/		0b_00100 )k24+( /*
*/		0b_00100 )k29+( /*
*/		0b_00100 )k34	;wzór T

	DS     (0b_11111 )k04+( /*
*/		0b_00001 )k09+( /*
*/		0b_00010 )k14+( /*
*/		0b_00100 )k19+( /*
*/		0b_01000 )k24+( /*
*/		0b_10000 )k29+( /*
*/		0b_11111 )k34	;wzór Z

	DS     (0b_10000 )k04+( /*
*/		0b_10000 )k09+( /*
*/		0b_10000 )k14+( /*
*/		0b_10000 )k19+( /*
*/		0b_10000 )k24+( /*
*/		0b_10000 )k29+( /*
*/		0b_11111 )k34	;wzór L

	DS     (0b_10001 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_10101 )k19+( /*
*/		0b_11011 )k24+( /*
*/		0b_11011 )k29+( /*
*/		0b_10001 )k34	;wzór W

	DS     (0b_10001 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_11111 )k19+( /*
*/		0b_10001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_10001 )k34	;wzór H

	DS     (0b_10001 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_01010 )k14+( /*
*/		0b_00100 )k19+( /*
*/		0b_00100 )k24+( /*
*/		0b_00100 )k29+( /*
*/		0b_00100 )k34	;wzór Y

	DS     (0b_11110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_11110 )k19+( /*
*/		0b_10000 )k24+( /*
*/		0b_10000 )k29+( /*
*/		0b_10000 )k34	;wzór P

	DS     (0b_01110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_10001 )k19+( /*
*/		0b_10011 )k24+( /*
*/		0b_10011 )k29+( /*
*/		0b_01111 )k34	;wzór Q

	DS     (0b_01110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_10001 )k19+( /*
*/		0b_10001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_01110 )k34	;wzór O

	DS     (0b_11110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_11110 )k19+( /*
*/		0b_10001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_11110 )k34	;wzór B

	DS     (0b_01110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10000 )k14+( /*
*/		0b_10111 )k19+( /*
*/		0b_10001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_01111 )k34	;wzór G

	DS     (0b_00000 )k04+( /*
*/		0b_00000 )k09+( /*
*/		0b_00100 )k14+( /*
*/		0b_01110 )k19+( /*
*/		0b_11111 )k24+( /*
*/		0b_00000 )k29+( /*
*/		0b_00000 )k34	;wzór FS

	DS     (0b_10001 )k04+( /*
*/		0b_11011 )k09+( /*
*/		0b_11011 )k14+( /*
*/		0b_10101 )k19+( /*
*/		0b_10001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_10001 )k34	;wzór M

	DS     (0b_10001 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_01010 )k14+( /*
*/		0b_00100 )k19+( /*
*/		0b_01010 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_10001 )k34	;wzór X

	DS     (0b_10001 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_01010 )k19+( /*
*/		0b_01010 )k24+( /*
*/		0b_01010 )k29+( /*
*/		0b_00100 )k34	;wzór V

	DS     (0b_00000 )k04+( /*
*/		0b_00000 )k09+( /*
*/		0b_11111 )k14+( /*
*/		0b_01110 )k19+( /*
*/		0b_00100 )k24+( /*
*/		0b_00000 )k29+( /*
*/		0b_00000 )k34	;wzór LS

	DS     (0b_00000 )k04+( /*
*/		0b_01110 )k09+( /*
*/		0b_11111 )k14+( /*
*/		0b_11111 )k19+( /*
*/		0b_11111 )k24+( /*
*/		0b_01110 )k29+( /*
*/		0b_00000 )k34	;wzór NU

	DS     (0b_01110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_00001 )k14+( /*
*/		0b_00110 )k19+( /*
*/		0b_00001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_01110 )k34	;wzór 3

	DS     (0b_00000 )k04+( /*
*/		0b_11111 )k09+( /*
*/		0b_00000 )k14+( /*
*/		0b_11111 )k19+( /*
*/		0b_00000 )k24+( /*
*/		0b_11111 )k29+( /*
*/		0b_00000 )k34	;wzór LF

	DS     (0b_00000 )k04+( /*
*/		0b_00000 )k09+( /*
*/		0b_00000 )k14+( /*
*/		0b_11111 )k19+( /*
*/		0b_00000 )k24+( /*
*/		0b_00000 )k29+( /*
*/		0b_00000 )k34	;wzór -

	DS     (0b_00000 )k04+( /*
*/		0b_00000 )k09+( /*
*/		0b_00000 )k14+( /*
*/		0b_00000 )k19+( /*
*/		0b_00000 )k24+( /*
*/		0b_00000 )k29+( /*
*/		0b_00000 )k34	;wzór SP

	DS     (0b_00100 )k04+( /*
*/		0b_01000 )k09+( /*
*/		0b_00000 )k14+( /*
*/		0b_00000 )k19+( /*
*/		0b_00000 )k24+( /*
*/		0b_00000 )k29+( /*
*/		0b_00000 )k34	;wzór '

	DS     (0b_01110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_01110 )k19+( /*
*/		0b_10001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_01110 )k34	;wzór 8

	DS     (0b_11111 )k04+( /*
*/		0b_00001 )k09+( /*
*/		0b_00010 )k14+( /*
*/		0b_00100 )k19+( /*
*/		0b_01000 )k24+( /*
*/		0b_01000 )k29+( /*
*/		0b_01000 )k34	;wzór 7

	DS     (0b_11111 )k04+( /*
*/		0b_11111 )k09+( /*
*/		0b_11111 )k14+( /*
*/		0b_11111 )k19+( /*
*/		0b_11111 )k24+( /*
*/		0b_11111 )k29+( /*
*/		0b_11111 )k34	;wzór CR

	DS     (0b_00000 )k04+( /*
*/		0b_00000 )k09+( /*
*/		0b_10101 )k14+( /*
*/		0b_01110 )k19+( /*
*/		0b_10101 )k24+( /*
*/		0b_00000 )k29+( /*
*/		0b_00000 )k34	;wzór *

	DS     (0b_10001 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_11111 )k19+( /*
*/		0b_00001 )k24+( /*
*/		0b_00001 )k29+( /*
*/		0b_00001 )k34	;wzór 4

	DS     (0b_00000 )k04+( /*
*/		0b_00000 )k09+( /*
*/		0b_00000 )k14+( /*
*/		0b_00100 )k19+( /*
*/		0b_00000 )k24+( /*
*/		0b_00100 )k29+( /*
*/		0b_01000 )k34	;wzór ;

	DS     (0b_00000 )k04+( /*
*/		0b_00000 )k09+( /*
*/		0b_00000 )k14+( /*
*/		0b_00000 )k19+( /*
*/		0b_00000 )k24+( /*
*/		0b_00100 )k29+( /*
*/		0b_01000 )k34	;wzór ,

	DS     (0b_00100 )k04+( /*
*/		0b_00100 )k09+( /*
*/		0b_00100 )k14+( /*
*/		0b_00100 )k19+( /*
*/		0b_00000 )k24+( /*
*/		0b_00000 )k29+( /*
*/		0b_00100 )k34	;wzór !

	DS     (0b_00000 )k04+( /*
*/		0b_00000 )k09+( /*
*/		0b_00100 )k14+( /*
*/		0b_00000 )k19+( /*
*/		0b_00100 )k24+( /*
*/		0b_00000 )k29+( /*
*/		0b_00000 )k34	;wzór :

	DS     (0b_00010 )k04+( /*
*/		0b_00100 )k09+( /*
*/		0b_01000 )k14+( /*
*/		0b_01000 )k19+( /*
*/		0b_01000 )k24+( /*
*/		0b_00100 )k29+( /*
*/		0b_00010 )k34	;wzór (

	DS     (0b_11111 )k04+( /*
*/		0b_10000 )k09+( /*
*/		0b_11110 )k14+( /*
*/		0b_00001 )k19+( /*
*/		0b_00001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_01110 )k34	;wzór 5

	DS     (0b_00000 )k04+( /*
*/		0b_00100 )k09+( /*
*/		0b_00100 )k14+( /*
*/		0b_11111 )k19+( /*
*/		0b_00100 )k24+( /*
*/		0b_00100 )k29+( /*
*/		0b_00000 )k34	;wzór +

	DS     (0b_01000 )k04+( /*
*/		0b_00100 )k09+( /*
*/		0b_00010 )k14+( /*
*/		0b_00010 )k19+( /*
*/		0b_00010 )k24+( /*
*/		0b_00100 )k29+( /*
*/		0b_01000 )k34	;wzór )

	DS     (0b_01110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_00001 )k14+( /*
*/		0b_00010 )k19+( /*
*/		0b_00100 )k24+( /*
*/		0b_01000 )k29+( /*
*/		0b_11111 )k34	;wzór 2

	DS     (0b_10000 )k04+( /*
*/		0b_10000 )k09+( /*
*/		0b_10100 )k14+( /*
*/		0b_11000 )k19+( /*
*/		0b_10000 )k24+( /*
*/		0b_10000 )k29+( /*
*/		0b_11111 )k34	;wzór Ł

	DS     (0b_00110 )k04+( /*
*/		0b_01000 )k09+( /*
*/		0b_10000 )k14+( /*
*/		0b_11110 )k19+( /*
*/		0b_10001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_01110 )k34	;wzór 6

	DS     (0b_01110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_10101 )k19+( /*
*/		0b_10001 )k24+( /*
*/		0b_10001 )k29+( /*
*/		0b_01110 )k34	;wzór 0

	DS     (0b_00100 )k04+( /*
*/		0b_01100 )k09+( /*
*/		0b_00100 )k14+( /*
*/		0b_00100 )k19+( /*
*/		0b_00100 )k24+( /*
*/		0b_00100 )k29+( /*
*/		0b_01110 )k34	;wzór 1

	DS     (0b_01110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_10001 )k14+( /*
*/		0b_01111 )k19+( /*
*/		0b_00001 )k24+( /*
*/		0b_00010 )k29+( /*
*/		0b_01100 )k34	;wzór 9

	DS     (0b_01110 )k04+( /*
*/		0b_10001 )k09+( /*
*/		0b_00001 )k14+( /*
*/		0b_00010 )k19+( /*
*/		0b_00100 )k24+( /*
*/		0b_00000 )k29+( /*
*/		0b_00100 )k34	;wzór ?

	DS     (0b_01100 )k04+( /*
*/		0b_01010 )k09+( /*
*/		0b_01100 )k14+( /*
*/		0b_01101 )k19+( /*
*/		0b_10010 )k24+( /*
*/		0b_10010 )k29+( /*
*/		0b_01101 )k34	;wzór &

	DS     (0b_00000 )k04+( /*
*/		0b_00000 )k09+( /*
*/		0b_00100 )k14+( /*
*/		0b_01110 )k19+( /*
*/		0b_11111 )k24+( /*
*/		0b_00000 )k29+( /*
*/		0b_00000 )k34	;wzór FS

	DS     (0b_00000 )k04+( /*
*/		0b_00000 )k09+( /*
*/		0b_00000 )k14+( /*
*/		0b_00000 )k19+( /*
*/		0b_00000 )k24+( /*
*/		0b_00000 )k29+( /*
*/		0b_00100 )k34	;wzór .

	DS     (0b_00001 )k04+( /*
*/		0b_00001 )k09+( /*
*/		0b_00010 )k14+( /*
*/		0b_00100 )k19+( /*
*/		0b_01000 )k24+( /*
*/		0b_10000 )k29+( /*
*/		0b_10000 )k34	;wzór /

	DS     (0b_00000 )k04+( /*
*/		0b_00000 )k09+( /*
*/		0b_11111 )k14+( /*
*/		0b_00000 )k19+( /*
*/		0b_11111 )k24+( /*
*/		0b_00000 )k29+( /*
*/		0b_00000 )k34	;wzór =

	DS     (0b_00000 )k04+( /*
*/		0b_00000 )k09+( /*
*/		0b_11111 )k14+( /*
*/		0b_01110 )k19+( /*
*/		0b_00100 )k24+( /*
*/		0b_00000 )k29+( /*
*/		0b_00000 )k34	;wzór LS

	KONIEC
---
